package top.yueyazhui.learn_shiro.realm;

import org.apache.shiro.authc.*;
import org.apache.shiro.realm.AuthenticatingRealm;
import top.yueyazhui.learn_shiro.service.UserService;

/**
 * @Author yueyazhui
 * @Date 2023/2/25
 *
 * 继承 AuthenticatingRealm 可以实现认证功能
 */
public class MyRealm01 extends AuthenticatingRealm {

    private UserService userService;

    public MyRealm01(UserService userService) {
        this.userService = userService;
    }

    /**
     * 这个 Realm 不做认证，只是为了测试多 Realm 的认证策略
     *
     * @param authenticationToken 包含用户登录时输入的用户名和密码等信息
     * @return 用户登录时输入的用户名和密码等信息
     * @throws AuthenticationException
     */
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) authenticationToken;
        // 返回的密码就是用户登录时输入的密码，所以不管用户填什么用户名和密码都可以认证成功
        return new SimpleAuthenticationInfo("yue", usernamePasswordToken.getPassword(), getName());
    }
}
